//package com.lzx.adx.report.job;
//
//import cn.hutool.core.collection.CollectionUtil;
//import cn.hutool.core.net.URLDecoder;
//import cn.hutool.core.util.URLUtil;
//import cn.hutool.http.HttpRequest;
//import cn.hutool.http.HttpUtil;
//import com.alibaba.fastjson.JSONObject;
//import com.lzs.adx.commmon.redis.RedisUtils;
//import com.lzs.adx.commmon.utils.JsonUtils;
//import com.lzx.adx.report.cache.AccountLocalCache;
//import com.lzx.adx.report.constant.RedisKeyConstant;
//import com.lzx.adx.report.dto.AccountDTO;
//import com.lzx.adx.report.dto.ReportDTO;
//import com.lzx.adx.report.enums.EventTypeEnums;
//import com.lzx.adx.report.model.huawei.request.HwUploadRequest;
//import com.lzx.adx.report.service.ReportService;
//import com.lzx.adx.report.util.HwSecureUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import java.nio.charset.StandardCharsets;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * 趣头条-西瓜视频 回传异步任务
// */
//@Component
//@EnableScheduling
//@Slf4j
//public class QttXgspJob {
//
//
//    @Autowired
//    private ReportService reportService;
//
//    @Autowired
//    private RedisUtils redisUtils;
//
//    /**
//     * 趣头条-西瓜视频
//     */
//    @Scheduled(cron = "0 */10 * ? * *")
//    public void reportEvent(){
//        log.info("进行趣头条-西瓜视频-上报处理-begin");
//        Map<String, Object> stringObjectMap = redisUtils.hgetAll(RedisKeyConstant.QTT_XGSP);
//        int size = stringObjectMap.size();
//        log.info("进行趣头条-西瓜视频-本次需要处理的数量为{}",size);
//        if(CollectionUtil.isNotEmpty(stringObjectMap)){
//            //
//            for(Map.Entry<String,Object> ev:stringObjectMap.entrySet()){
//                Object value = ev.getValue();
//                log.info("目前正在执行{}",value);
//                long eventTime = System.currentTimeMillis();
//                callBackUrl(String.valueOf(value),"0",String.valueOf(eventTime));
//            }
//        }
//        log.info("进行趣头条-西瓜视频-上报处理-end");
//    }
//
//
//
//    public void callBackUrl(String requestId, String event_type, String event_time)  {
//        log.info("接收了趣头条-西瓜视频 回调信息，请求流水号{},回调类型为{}，回调时间{}",requestId,event_type,event_time);
//
//        //1.把转换结果更新到数据库
//        Map<String,Object> params=new HashMap<>();
//        params.put("bizRequestId",requestId);
//        List<ReportDTO> list = reportService.list(params);
//        ReportDTO reportDTO = list.get(0);;
//        reportDTO.setResultType(event_type);
//        reportDTO.setResultTime(event_time);
//        reportDTO.setUpdateTime(new Date());
//        reportService.updateData(reportDTO);
//
//
//        //2.回调渠道，调用趣头条回传
//        Long conversion_time=Long.valueOf(reportDTO.getResultTime())/1000;
//
//        //3，获取回传地址，进行解码
//        String decodeUrl = URLDecoder.decode(reportDTO.getCallback(), StandardCharsets.UTF_8);
//        log.info("趣头条-西瓜视频 -解码后的视频地址为：{}",decodeUrl);
//
//        //拼接完整的请求参数
//        Map<String,Object> paramsReq=new HashMap<>();
//        paramsReq.put("op2",event_type);
//        paramsReq.put("opt_active_time",conversion_time);
//        String paramss= URLUtil.buildQuery(paramsReq,StandardCharsets.UTF_8);
//        String finalUrl=decodeUrl+"&"+paramss;
//
//        log.info("趣头条-西瓜视频 -完整地址为：{}",finalUrl);
//        String result = HttpUtil.get(finalUrl);
//        log.info("账号为【{}】，接收趣头条-西瓜视频 转换响应的结果为{}",reportDTO.getDspId(),result);
//        JSONObject jsonObject=JSONObject.parseObject(result);
//        Integer resultCode = jsonObject.getInteger("code");
//
//        if(resultCode==0){
//            //上报成功了，就把那个回传的给清楚掉
//            log.info("接收趣头条-西瓜视频上报成功 id{}",reportDTO.getId());
//            redisUtils.hDel(RedisKeyConstant.QTT_XGSP,reportDTO.getBizRequestId());
//        }else{
//           log.info("接收趣头条-西瓜视频上报失败了 id{},",reportDTO.getDspId());
//        }
//    }
//}
